# Feature gates
This crate declares the set of past and present unstable features in the compiler.
Feature gate checking itself is done in `rustc_ast_passes/src/feature_gate.rs`
at the moment.
Features are enabled in programs via the crate-level attributes of
`#![feature(...)]` with a comma-separated list of features.
For the purpose of future feature-tracking, once a feature gate is added,
even if it is stabilized or removed, *do not remove it*. Instead, move the
symbol to the `accepted` or `removed` modules respectively.